// 引入axios
import axios from 'axios'
// 本地存储处理模块
import { getToken, delToken } from '@/utils/storage'
// 引入路由
import router from '@/router'
// 引入提示
import { Toast } from 'vant'
// 创建实例
const ValAjax = axios.create({
  baseURL: 'http://liufusong.top:8080' // 设置基地址
  // timeout: 5000 // 设置请求超时时间
})

// 通知状态
const forbidClick = true
// 设置请求拦截器
ValAjax.interceptors.request.use(config => {
  Toast.loading({
    duration: 0,
    message: '请稍后',
    forbidClick
  })
  // 如果有Token给响应头写入token
  if (getToken()) {
    config.headers.authorization = getToken()
  }
  return config
}, error => {
  return Promise.reject(error)
})

// 设置响应拦截器
ValAjax.interceptors.response.use(response => {
  // 判断响应体内的状态码
  if (response.data.status === 200) {
    Toast.success(response.data.description)
  } else if (response.data.status === 400) {
    delToken()
    router.push('/login')
    Toast.fail(response.data.description)
  } else {
    Toast.fail(response.data.description)
  }
  return response.data
}, error => {
  return Promise.reject(error)
})

export default ValAjax
